home *** CD-ROM | disk | FTP | other *** search
-
- (
- ( Inteface for Creation method
- (
-
- ?& CREATION_GUI NOT ?IF
- 1 CONSTANT CREATION_GUI
-
- "ui.rpl" LOAD
- "locks.rpl" LOAD
-
- ( Variables
-
- VARIABLE craWindow
- VARIABLE craPartCnt
- VARIABLE craMaxPartCnt
- VARIABLE craLifeTime
- VARIABLE craText
- VARIABLE craProcessor
- VARIABLE craVelX
- VARIABLE craVelY
- VARIABLE craVelZ
- VARIABLE craSpinX
- VARIABLE craSpinY
- VARIABLE craSpinZ
- VARIABLE craVRnd
- VARIABLE craSRnd
- VARIABLE craLRnd
-
-
- 180 CONSTANT criLeft
- 60 CONSTANT criLeft2
- 180 CONSTANT criWidth
- 330 CONSTANT criWidth2
- 12 CONSTANT criHeight
-
- : crcbApply
- FVARIABLE fLifeTime
- VARIABLE iInitCnt
- VARIABLE iMaxCnt
- VARIABLE iProcessor
- VARIABLE iRandom
- VVARIABLE vVelocity
- VVARIABLE vSpin
- 100 STRING sTmp
- VARIABLE iVRnd
- VARIABLE iSRnd
- VARIABLE iLRnd
-
- iLOCK_EXCL O_LOCK
- O_GETSEL
-
- DUP O_GETROOT = IF
- iLOCK_REMOVE O_LOCK
- "Cannot be applied to Root" ERROR
- EXIT
- ENDIF
-
- DUP IF
-
- ( Read velocity gadgets
- UI_Done sTmp UIST_String craVelX FETCH UI_GETATTRS sTmp ATOF
- UI_Done sTmp UIST_String craVelY FETCH UI_GETATTRS sTmp ATOF
- UI_Done sTmp UIST_String craVelZ FETCH UI_GETATTRS sTmp ATOF
- vVelocity VSTORE
- UI_Done iVRnd UISL_Level craVRnd FETCH UI_GETATTRS
-
- ( Fetch spin
- UI_Done sTmp UIST_String craSpinX FETCH UI_GETATTRS sTmp ATOF
- UI_Done sTmp UIST_String craSpinY FETCH UI_GETATTRS sTmp ATOF
- UI_Done sTmp UIST_String craSpinZ FETCH UI_GETATTRS sTmp ATOF
- vSpin VSTORE
- UI_Done iSRnd UISL_Level craSRnd FETCH UI_GETATTRS
-
- ( Life time
- UI_Done sTmp UIST_String craLifeTime FETCH UI_GETATTRS
- sTmp ATOF fLifeTime FSTORE ( convert string to floating point
- UI_Done iLRnd UISL_Level craLRnd FETCH UI_GETATTRS
-
- ( Read other attributes
- UI_Done iInitCnt UISL_Level craPartCnt FETCH UI_GETATTRS
- UI_Done iMaxCnt UISL_Level craMaxPartCnt FETCH UI_GETATTRS
- UI_Done iProcessor UICB_Checked craProcessor FETCH UI_GETATTRS
-
- ( cut selected objects to clipboard
- M_CUT
-
- ( create a creation anim. method
- 2 "creation" 0
- "CEND"
- "CREATION" "SMTH"
- iInitCnt FETCH "IICN"
- iMaxCnt FETCH "ICNT"
- iVRnd FETCH 100 F/ "FVRN"
- iSRnd FETCH 100 F/ "FSRN"
- iLRnd FETCH 100 F/ "FLRN"
- C_LEVEL ( leave address on the stack
-
- iProcessor FETCH IF
- 2 "professor" 0 "CEND" "PROCESSOR" "SMTH" C_LEVEL DROP
- ENDIF
-
- ( make creation object the current working level
- O_CURRENT DROP
-
- ( paste selected objects inside the creation method
- O_GETCURR 0 M_PASTE
-
- ( loop through all sub objects and attach necessary tags to them
- O_GETCURR O_GETSUB
- BEGIN
- DUP
- WHILE
- DUP
- "CEND"
- fLifeTime FFETCH "FLIF"
- vVelocity VFETCH "VVEL"
- vSpin VFETCH "VSPI"
- O_CREATAG DROP
- O_GETNEXT
- REPEAT
- DROP
- ENDIF
- iLOCK_REMOVE O_LOCK
- UI_Done "All done" UITX_Text craText FETCH UI_SETATTRS
- REFRESH
- ;
-
- : crcbHelp
- "Ok, I See" "Help not ready yet" GET_KEY DROP
- ;
-
- : crcbCancel
- craWindow FETCH UI_DELETE
- NULL craWindow STORE
- ;
-
- : crcbWindow
- PARAM
- VARIABLE iMouseY
- VARIABLE iMouseX
- VARIABLE iEvent
- ENDPARAM
-
- iEvent FETCH UIWM_Close =
- IF
- craWindow FETCH UI_DELETE
- NULL craWindow STORE
- ENDIF
- ;
-
- ?ENDIF ( CREATION_GUI
-
- (
- ( Create display objects
- (
-
- craWindow FETCH
- ?IF
- "I See" "Window is already opened" GET_KEY DROP
- ?ELSE
-
- UI_Done & crcbWindow 0 0 420 200 "Procedural Creation Tool" UI_WINDOW craWindow STORE
-
- UI_Done "0.5" UIST_String
- craWindow FETCH NULL criLeft 20 criWidth criHeight "Life time (s)" UI_STRING craLifeTime STORE
-
- UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
- craWindow FETCH NULL criLeft 35 criWidth criHeight "Random Factor" UI_SLIDER craLRnd STORE
-
- UI_Done 1 UISL_Min 1000 UISL_Max 20 UISL_Level
- craWindow FETCH NULL criLeft 50 criWidth criHeight "Number of Particles" UI_SLIDER craPartCnt STORE
-
- UI_Done 1 UISL_Min 10000 UISL_Max 500 UISL_Level
- craWindow FETCH NULL criLeft 75 criWidth criHeight "Max Particle Cnt" UI_SLIDER craMaxPartCnt STORE
-
- UI_Done TRUE UICB_Checked
- craWindow FETCH NULL criLeft 90 50 criHeight "Create Processor" UI_CHECKBOX craProcessor STORE
-
- ( Velocity gadgets
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 105 70 criHeight "Velocity (m/s)" UI_STRING craVelX STORE
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 70 + 105 70 criHeight "" UI_STRING craVelY STORE
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 140 + 105 70 criHeight "" UI_STRING craVelZ STORE
-
- UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
- craWindow FETCH NULL criLeft 120 criWidth criHeight "Random Factor" UI_SLIDER craVRnd STORE
-
- ( Spin
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 135 70 criHeight "Spin (2*PI*Rad/s)" UI_STRING craSpinX STORE
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 70 + 135 70 criHeight "" UI_STRING craSpinY STORE
-
- UI_Done "1.0" UIST_String
- craWindow FETCH NULL criLeft 140 + 135 70 criHeight "" UI_STRING craSpinZ STORE
-
- UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
- craWindow FETCH NULL criLeft 150 criWidth criHeight "Random Factor" UI_SLIDER craSRnd STORE
-
-
- UI_Done
- "Select an object and click Apply" UITX_Text
- TRUE UITX_Border
- craWindow FETCH NULL criLeft2 165 criWidth2 criHeight "Info" UI_TEXT craText STORE
-
- UI_Done craWindow FETCH & crcbApply 20 185 100 criHeight "Apply" UI_BUTTON DROP
- UI_Done craWindow FETCH & crcbHelp 170 185 100 criHeight "Help" UI_BUTTON DROP
- UI_Done craWindow FETCH & crcbCancel 290 185 100 criHeight "Cancel" UI_BUTTON DROP
-
- ( realize gadgets
- craWindow FETCH UI_REALIZE
-
- ?ENDIF
-